package com.ruijixiang.leetcode.hot100;

import java.util.HashMap;
import java.util.Map;

public class leetcode0128 {
    // 时间复杂度O(n)
    public int longestConsecutive(int[] nums){
        Map<Integer,Integer> map=new HashMap<>();
        int ans=0;
        for(int num : nums){
            if(!map.containsKey(num)){
                // 左侧连续长度
                int left=map.getOrDefault(num-1,0);
                // 右侧连续长度
                int right=map.getOrDefault(num+1,0);
                int cur=left+right+1;
                ans=Math.max(ans,cur);
                map.put(num,cur);
                map.put(num-left,cur);
                map.put(num+right,cur);
            }
        }
        return ans;
    }
}
